package com.zy.集合.常用方法.集合操作

object Test {

  def main(args: Array[String]): Unit = {

    val list1: List[Int] = List(1, 2, 3, 4, 5, 6)
    val list2: List[Int] = List(1, 3, 5, 7, 9)

    // 获取集合头 、尾
    println(list1.head)
    println(list1.last)
    println(list1.tail) // 返回去掉头之后的集合 List(2, 3, 4, 5)
    println(list1.init) // 返回去掉尾之后的集合 List(1, 2, 3, 4)

    println("======================")

    // 翻转
    println(list1.reverse)
    // 取前n个元素
    println(list1.take(3))
    // 取后n个元素
    println(list1.takeRight(3))
    // 去掉前n个元素
    println(list1.drop(1))
    // 去掉后n个元素
    println(list1.dropRight(1))

    println("======================")

    // 并集
    println(list1.union(list2)) // 相当于 ::: 直接拼接  set做并集会去重
    // 交集
    println(list1.intersect(list2))
    // 差集 属于list1但不属于list2的元素
    println(list1.diff(list2))

    println("======================")

    // 拉链 两个集合类型按指定下标拼接成一个二维元祖，剩余多的元素被丢弃
    println(list1.zip(list2))
    println(list2.zip(list1))

    println("======================")

    // 划窗 三个数一个集合，默认每次滑动一个
    list1.sliding(3).foreach(println)
    println
    list1.sliding(3, 2).foreach(println) // 第二个参数 步长

    println("======================")


    println("======================")

  }
}
